<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/11/24 0024
 * Time: 9:22
 */

namespace app\user\controller;
use cmf\controller\HomeBaseController;
use think\Db;
@header('Content-type: text/html;charset=UTF-8');
class CreateInviteKeyController extends HomeBaseController
{

    public function index(){
        vendor('phpqrcode.phpqrcode','simplewind/Core/Library/Vendor','.php');;//导入类库
        include_once(CMF_ROOT.'/simplewind/vendor/phpqrcode/qrlib.php');
        $user_id = cmf_get_current_user_id();//获取当前登录的用户id
        $web = cmf_get_domain();
        if($user_id){
            $web_path = str_replace( '\\' , '/' , realpath(dirname(CMF_ROOT).'/../'));
            $tempDir = $web_path."/public/static/qrcode/".$user_id."/";
            $codeContents = $web.'/user/register/index.html?invite_key='.$user_id; //推荐码 ，就是网站注册url,加上该用户id,也用来当做二维码的内容
            $fileName = $user_id.'.png'; //生成的二维码图片名
            $pngAbsoluteFilePath = $tempDir.$fileName; //合并成最终存储地址
            /* 为每个用户创建一个目录 */
            //iconv方法是为了防止中文乱码，保证可以创建识别中文目录，不用iconv方法格式的话，将无法创建中文目录
            $dir = iconv("UTF-8", "GBK", $tempDir);
            if (!file_exists($dir)){
                mkdir ($dir,0777,true);
            }
            \QRcode::png($codeContents, $pngAbsoluteFilePath, QR_ECLEVEL_Q ,5);//生成二维码
            /* 生成成功 */
            /*echo '<img src="'.$tempDir.'" />';
            exit();*/
            $avatar = cmf_get_current_user();//获取当前登录的前台用户的信息，未登录时，返回false
            if($avatar){
                $logo = $web_path.'/public/upload/'.$avatar['avatar'];//获取用户头像地址
                /* 如果生成的二维码图片存在，就给他中间加个用户的头像的 */
                if (file_exists($tempDir)){
                    $QR = $pngAbsoluteFilePath;//已经生成的原始二维码图
                    if (!empty($avatar['avatar'])) {
                        $QR = imagecreatefromstring(file_get_contents($QR));
                        $logo = imagecreatefromstring(file_get_contents($logo));
                        $QR_width = imagesx($QR);//二维码图片宽度
                        $QR_height = imagesy($QR);//二维码图片高度
                        $logo_width = imagesx($logo);//logo图片宽度
                        $logo_height = imagesy($logo);//logo图片高度
                        $logo_qr_width = $QR_width / 5;
                        $scale = $logo_width/$logo_qr_width;
                        $logo_qr_height = $logo_height/$scale;
                        $from_width = ($QR_width - $logo_qr_width) / 2;
                        //重新组合图片并调整大小
                        imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
                            $logo_qr_height, $logo_width, $logo_height);

                        //输出图片
                        imagepng($QR, $pngAbsoluteFilePath);
                    }else{
                        $this->success('成功生成普通二维推荐码了！');
                    }
                }else{$this->error("未生成二维码！");}
            }
                $this->success('成功生成推荐码');

        }else{$this->error("出现问题了！可以重新登录试试！");}

    }

}